home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / misc / amag / AM9404_3.lha / toolmanager (teil 1) / workshop / mini-view.rexx next >
OS/2 REXX Batch file  |  1994-02-08  |  3KB  |  76 lines

  1. /* Listing 4 - Mini-View von Gunther Lemm
  2. Dieses kleine ARexx-Programm ist ein Datei-Analysator,
  3. der dazu in der Lage ist, die Dateitypen Text, IFF-Bild,
  4. IFF-Sample LHA-Archiv und ARexx zu unterscheiden. Nachdem
  5. einer der genannten Dateitypen erkannt wurde, startet
  6. Mini-View automatisch ein passendes Anzeigeprogramm und
  7. lädt die Datei. Es muß unter dem Namen »Mini-View.rexx«
  8. in den Ordner »SYS:Rexxc« geschrieben werden. */
  9.  
  10. Address COMMAND  /* Nicht-ARexx-Befehle zum CLI */
  11. Parse ARG file  /* Aufrufparameter einlesen */
  12.  
  13. /* keine Parameter übergeben-> More starten */
  14. If file = "" Then Do ; "run SYS:Utilities/more"; Exit;End
  15. if left(file,1)~='"' then file='"'||file||'"'
  16.  
  17. pos=Lastpos(".",file)
  18. suffix=""
  19. If pos>0 Then suffix = Upper(Right(file,Length(file)-pos))
  20. If Length(suffix)>0 && Right(suffix,1)='"' Then suffix=Left(suffix,Length(suffix)-1)
  21.  
  22. /* Suffix-Check (ist schneller als der Byte-Check) */
  23. Select
  24.     When suffix = "DOC" Then p=1
  25.     When suffix = "DOK" Then p=1
  26.     When suffix = "ASC" Then p=1
  27.     When suffix = "TXT" Then p=1
  28.     When suffix = "IFF" Then p=2
  29.     When suffix = "PIC" Then p=2
  30.     When suffix = "BRUSH" Then p=2
  31.     When suffix = "SAMPLE" Then p=3
  32.     When suffix = "SND" Then p=3
  33.     When suffix = "SMP" Then p=3
  34.     When suffix = "LHA" Then p=4
  35.     When suffix = "LZH" Then p=4
  36.     When suffix = "REXX" Then p=5
  37.     Otherwise Do  /* kein (bekannter) Suffix */
  38.  
  39.      /* Checkt die ersten 20 Bytes, falls der Suffix-Check
  40.      nicht erfolgreich war. Index(xx,"TEXT") = 9 gibt die
  41.      Position des ersten Zeichens von TEXT in der Datei an.
  42.      Für BeckerText(e) wäre das: When Index(inp,"BTXTTEXT")=1
  43.      Then ... */
  44.         dummy="ergo=Open(in,"file")"
  45.         interpret dummy
  46.         if ergo=1 then do
  47.             inp = ReadCh(in,20)
  48.             ergc=Close(in)
  49.             Select
  50.                 When Index(inp,"ILBM") = 9 Then p=2
  51.                 When Index(inp,"8SVX") = 9 Then p=3
  52.                 Otherwise p=1
  53.             End
  54.         End
  55.     End
  56. End
  57. cli=' >CON:0/0/640/256/Archiv-Inhalt.../DELAY/WAIT/CLOSE'
  58.  
  59. Select /* Anzeigeprogramm starten & Datei einladen */
  60.      /* Text anzeigen */
  61.     When p=1 Then address command 'run SYS:utilities/more 'file
  62.      /* Bild anzeigen */
  63.     When p=2 Then 'SYS:Utilities/Display '||file
  64.      /* Sample abspielen (mit Upd über ARexx) */
  65.     When p=3 Then Address PLAY 'file '||file||' -S'
  66.      /* Archiv auflisten */
  67.     When p=4 Then 'SYS:c/Lha l '||file||cli
  68.      /* ARexx-Programm starten */
  69.     When p=5 Then 'SYS:rexxc/RX '||file
  70. End
  71. Exit
  72. /* Das Archivierungsprogramm Lha ist in den C:-Ordnern
  73. der meisten FISH-Disks zu finden. Sie müssen es in
  74. Ihren C:-Ordner kopieren, um die Archiv-Auflistungs-
  75. Funktion nutzen zu können. */
  76.